package com.tanjor.sys.dubbo.impl.interfaces;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.tanjor.sys.dubbo.dto.SysRoleDTO;

import com.tanjor.common.datatable.PageReq;
import com.tanjor.common.datatable.PageResp;
import com.tanjor.common.exception.BusinessException;

/**
 * <p>
 *  dubbo服务类
 * </p>
 *
 * @author Liuwy
 * @since 2017-04-02
 */
public interface ISysRoleDubbo {

	/**
	 * 根据条件分页查询,返回datatables表格数据
	 * @param pageReq
	 * @return
	 */
	public PageResp findPage(PageReq pageReq);
	
	/**
	 * 新增数据
	 * @param entityDTO
	 * @return Map<String,Object>
	 * @throws Exception
	 */
	public Map<String,Object> insert(SysRoleDTO entityDTO) throws BusinessException;
	
	/**
	 * 根据主键修改记录
	 * @param entityDTO
	 * @return Map<String,Object>
	 * @throws Exception
	 */
	public Map<String,Object> update(SysRoleDTO entityDTO) throws BusinessException;
	
	/**
	 * 根据主键删除记录
	 * @param id
	 * @throws Exception
	 */
	public Map<String, Object> deleteById(Serializable id) throws BusinessException;
	
	/**
	 * 根据主键查找记录
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public SysRoleDTO findById(Serializable id);
	
	/**
	 * 根据用户编号查询对应角色
	 * @param userId
	 * @return
	 */
	public List<Map<String,Object>> findTreeByUser(String userId);
	
	public SysRoleDTO findByCode(String code);
}
